1. Field of the Invention
The present invention relates generally to an improved data processing system, and more particular, to abstracted dynamic report definition generation within an information technology infrastructure.
2. Description of the Related Art
Information stored in a database system may be retrieved through a database software application and displayed to a user. The retrieved information may be presented to the user through one or more reports in various formats, such as charts, tables, graphics, or interactive visualization tools. A report is a representation of one or more raw data sets that have been processed into some meaningful and succinct form. A report answers a simple question, usually after distilling a large amount of data. The provided answer may include any one or combination of the following: a summarization of a large set of data that can be quickly and easily understood; the correlation of two or more unique sets of data to express the current nature of a relationship; the processing of a given set of data into a normalized form (e.g., a time interval such as “requests per hour”); or the processing of a given set of data to conditionally exclude information that is not germane to the concept being expressed. Each report is generated from a report definition created by an administrator. A report definition defines the content and appearance of the report.
Reporting definitions in most existing software applications are in a proprietary format, meaning that a report definition cannot be moved between different reporting products. Report Definition Language (RDL) was developed by Microsoft®, Inc. to address this issue. RDL is an extensible markup language (XML) that defines a common schema to allow for the interchange of report definitions across reporting products. Crystal Reports is a Windows-based report generation product developed by Seagate Software that allows for creating reports from a variety of data sources with a minimum of written code. However, report definitions created using RDL and Crystal contain embedded database connection information and database schema in the report definitions. Embedding connection and database information within the report definition is problematic in terms of report definition reusability, since each time an underlying database schema changes or a database is moved, a new report definition must be created. The existing report definitions are also invalidated anytime the database changes are made, which can cause serious user-created report definition migration.
Furthermore, the mapping relationships in existing systems are also statically defined in the back-end code. The mapping relationships statically define the connections needed to retrieve data from the data sources to be used in the report. Thus, whenever there is a change to the mapping relationships (e.g., the database schema changes), the statically-defined mappings must be manually updated in the back-end code to reflect the change, and the reporting service must be rebuilt and redeployed before the changes can be utilized by any of the report definitions. In addition, having the mapping relationships statically defined in the back-end code results in a development dependency on the core reporting team when other solution developers require a new view to be exposed in order to develop report definitions.